'use strict';
module.exports = {
	/**
	 * XXXnameXXX
	 * @url admin/pages/files_mzgl/dy_tv_series/kh/uploadVideos 前端调用的url参数地址
	 * data 请求参数
	 * @param {String} params1  参数1
	 */
	main: async (event) => {
		let {
			data = {}, userInfo, util, filterResponse, originalParam
		} = event;
		let {
			customUtil,
			uniID,
			config,
			pubFun,
			vk,
			db,
			_
		} = util;
		let {
			uid,
			_id,
			ma_app_id,
			album_id
		} = data;
		let res = {
			code: 0,
			msg: ""
		};
		// 业务逻辑开始-----------------------------------------------------------


		let add = await db.collection('vk-test').add({
			tips: "上传视频",
			request_id: event.originalParam.context.requestId,
		})
		let A = await vk.baseDao.selects({
			dbName: "a_appid",
			// 主表where条件
			whereJson: {
				appid: ma_app_id
			},
		});

		console.log("A========", A);


		let appsecret = A.rows[0].appsecret

		let TvSeries = await vk.baseDao.select({
			dbName: "dy_tv_series", // 表名
			getCount: true, // 是否需要同时查询满足条件的记录总数量，默认false
			getMain: false, // 是否只返回rows数据，默认false
			pageIndex: 1, // 当前第几页
			pageSize: -1, // 每页条数
			whereJson: { // 条件
				tv_id: _id // 金额大于0
			},
			// 代表只显示_id和money字段
			fieldJson: {
				_id: false,
				url: true,
				dy_cloud_id: true,
				title: true,
				format: true,
				use_dy_cloud: true,
				dy_cloud_id: true,
				open_video_id: true
			},
			// 按_id降序 asc 升序 desc 降序 
			sortArr: [{
				name: "_id",
				type: "desc"
			}],
		});
		let TVdata = TvSeries.rows

		// console.log("TVdata", TVdata);

		// 获取accessonToken
		let urlA = "https://open.douyin.com/oauth/client_token/"
		const accessToken = await uniCloud.httpclient.request(urlA, {
			method: 'POST',
			headers: {
				"Content-Type": "application/json",
			},
			data: {
				client_key: ma_app_id, // id
				client_secret: appsecret, // 密钥
				grant_type: "client_credential",
			},
			dataType: 'json', // 指定返回值为json格式，自动进行parseK
		})

		//创建短剧
		// 有效时间为 2 个小时
		let access_token = accessToken.data.data.access_token


		// 循环发送上传视频的请求

		for (const e of TVdata) {
			console.log("e===", e);

			if (e.open_video_id == "") {
				try {
					let title = e.title.replace(/\s+/g, '');
					// 上传短剧至内容库
					let urlT = "https://open.douyin.com/api/playlet/v2/resource/upload/"
					const responseText = await uniCloud.httpclient.request(urlT, {
						method: 'POST',
						headers: {
							"Content-Type": "application/json",
							"access-token": access_token,
						},
						data: {
							resource_type: 1,
							ma_app_id: ma_app_id,
							video_meta: {
								url: e.url,
								title: title,
								format: e.format,
								use_dy_cloud: e.use_dy_cloud,
								dy_cloud_id: e.dy_cloud_id
							},
						},
						dataType: 'json', // 指定返回值为json格式，自动进行parseK
					})
					console.log("responseText", responseText);
					if (responseText.data.err_msg == "dy_cloud_id参数不合法，当前视频已上传" || responseText.data.err_msg ==
						"dy_cloud_id参数不合法，已同步成功") {
						// 调用查询视频的接口
						console.log("11111111111111111111111", e.dy_cloud_id, ma_app_id);
						let urlB = "https://open.douyin.com/api/playlet/v2/video/query/"
						const AAAA = await uniCloud.httpclient.request(urlB, {
							method: 'POST',
							headers: {
								"Content-Type": "application/json",
								"access-token": access_token,
							},
							data: {
								ma_app_id: ma_app_id,
								video_id_type: 2,
								dy_cloud_id: e.dy_cloud_id
							},
							dataType: 'json', // 指定返回值为json格式，自动进行parseK
						})
						console.log("AAAA======", AAAA.data.data.open_video_id);

						// 填充当前openid
						let bbb = await vk.baseDao.update({
							dbName: "dy_tv_series", // 表名
							whereJson: { // 条件
								dy_cloud_id: e.dy_cloud_id,

							},
							dataJson: { // 需要修改的数据
								open_video_id: AAAA.data.data.open_video_id,
								status: true
							}
						});


					}

					let open_video_id = responseText.data.data.video_result.open_video_id
					console.log("open_video_id====", open_video_id);
					// 执行 数据库 updateById 命令
					res.newdata = await vk.baseDao.updateById({
						dbName: "dy_tv_series",
						id: _id,
						dataJson: {
							open_video_id: open_video_id,
							status: true
						},
						getUpdateData: true,
					});

					let num = await vk.baseDao.update({
						dbName: "dy_tv_series", // 表名
						whereJson: { // 条件
							dy_cloud_id: e.dy_cloud_id,

						},
						dataJson: { // 需要修改的数据
							open_video_id: open_video_id,
							status: true
						}
					});
				} catch (err) {

				}
			} else {
				console.log("222");
				let num = await vk.baseDao.update({
					dbName: "dy_tv_series", // 表名
					whereJson: { // 条件
						dy_cloud_id: e.dy_cloud_id,

					},
					dataJson: { // 需要修改的数据
						status: true
					}
				});
			}




		}
		// 视频上传完  给主剧添加标记
		let tt = await vk.baseDao.update({
			dbName: "dy_tv", // 表名
			whereJson: { // 条件
				album_id: album_id,
			},
			dataJson: { // 需要修改的数据
				videos_status: true
			}
		});

		console.log("tt", tt);





		// 业务逻辑结束-----------------------------------------------------------
		return res;
	}
}